Group licenses for virtual objects in a distributed virtual world

ABSTRACT

A group licensing scheme for validating groups of virtual objects within a distributed virtual world is provided. Each of a number of distributed virtual world servers hosts a cell, or virtual space, of the virtual world. In operation, a first virtual world server categorizes virtual objects into a number of groups. Either before or after creating the groups, the first virtual world server validates each virtual object individually. Once the virtual objects are validated and the groups are formed, the first virtual world server generates a group license for each of the groups. When a group of virtual objects or an avatar associated with one or more groups of virtual objects moves to a virtual space hosted by a second virtual world server, the corresponding group licenses are provided to the second virtual world server, which validates the one or more groups of virtual objects based on the group licenses.

RELATED APPLICATION

This application is a continuation of co-pending U.S. patent application Ser. No. 11/762,459, entitled “GROUP LICENSES FOR VIRTUAL OBJECTS IN A DISTRIBUTED VIRTUAL WORLD,” which was filed on Jun. 13, 2007, and which is hereby incorporated herein by reference in its entirety.

FIELD OF THE INVENTION

The present invention relates to a distributed virtual world and more specifically to validating virtual objects within a distributed virtual world.

BACKGROUND OF THE INVENTION

Validation of virtual objects is crucial in preventing cheating in virtual worlds. More specifically, it is desirable to validate virtual objects or licenses issued to a user or avatar representing the user in the virtual world before permitting the user or avatar to interact with the virtual objects. However, there may be tens, hundreds, thousands, or even millions of users or avatars active in a virtual world at a particular point in time and each of the users or avatars may interact with a large number of virtual objects. As such, validating each virtual object individually before permitting a user or avatar to interact with the virtual object places a large load on the system and more specifically on a virtual world authority operating to issue and validate licenses as the number of users or avatars and virtual objects increases. Thus, there is a need for a system and method for efficiently validating virtual objects in a virtual world.

SUMMARY OF THE INVENTION

The present invention provides a group licensing scheme for validating groups of virtual objects within a distributed virtual world. In general, each of a number of distributed virtual world servers hosts a cell, or virtual space, of the virtual world. In one embodiment, a first virtual world server categorizes virtual objects within the virtual space hosted by the first virtual world server or associated with an avatar within the virtual space hosted by the first virtual world server into a number of groups. Either before or after creating the groups, the first virtual world server interacts with a virtual world authority to validate each virtual object individually. Once the virtual objects are validated and the groups are formed, the first virtual world server generates a group license for each of the groups. When a group of virtual objects or an avatar associated with one or more groups of virtual objects moves to a virtual space hosted by a second virtual world server, the corresponding group licenses are provided to the second virtual world server. Thereafter, the second virtual world server validates the one or more groups of virtual objects based on the group licenses rather than validating each of the virtual objects individually.

Those skilled in the art will appreciate the scope of the present invention and realize additional aspects thereof after reading the following detailed description of the preferred embodiments in association with the accompanying drawing figures.

Brief Description of the Drawing Figures

The accompanying drawing figures incorporated in and forming a part of this specification illustrate several aspects of the invention, and together with the description serve to explain the principles of the invention.

FIG. 1 illustrates a system implementing a distributed virtual world according to one embodiment of the present invention;

FIG. 2 illustrates a process for generating groups of virtual objects, issuing a group license for the virtual objects, and validating the group of virtual objects based on the group license according to one embodiment of the present invention; and

FIG. 3 is a block diagram of one of the nodes of FIG. 1 according to one embodiment of the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

The embodiments set forth below represent the necessary information to enable those skilled in the art to practice the invention and illustrate the best mode of practicing the invention. Upon reading the following description in light of the accompanying drawing figures, those skilled in the art will understand the concepts of the invention and will recognize applications of these concepts not particularly addressed herein. It should be understood that these concepts and applications fall within the scope of the disclosure and the accompanying claims.

FIG. 1 illustrates a system 10 implementing a distributed virtual world according to one embodiment of the present invention. In general, the virtual world may be any virtual environment wherein a user is enabled to control an avatar to move throughout and to interact with the virtual environment. An avatar may be, for example, a two-dimensional or three-dimensional graphical representation of a user or a character controlled by the user. For example, the virtual world may be a Massively Multiplayer Online Role Playing Game (MMORPG), a virtual environment such as Second Life, or the like.

The system 10 includes a number of network nodes, or nodes, 12-1 through 12-N and a virtual world authority 14 interconnected via a network 16. The network 16 may be a Local Area Network (LAN), Wide Area Network (WAN), or the like, or any combination thereof. The network 16 may include wired components, wireless components, or a combination thereof. For example, the network 16 may be the Internet.

The nodes 12-1 through 12-N may be network devices such as, for example, a number of distributed gaming servers. Alternatively, the nodes 12-1 through 12-N may be user devices communicating via a Peer-to-Peer (P2P) overlay network to provide a distributed P2P virtual world. For example, each of the nodes 12-1 through 12-N may be a user device such as a gaming console such as an Xbox®, Playstation®, or Nintendo® Wii; a mobile gaming device such as a Playstation Portable® or Nintendo DS®; a mobile terminal such as a Personal Digital Assistant or mobile telephone; a personal computer; or the like.

The nodes 12-1 through 12-N include virtual world servers 18-1 through 18-N, respectively. The virtual world servers 18-1 through 18-N may be implemented in software, hardware, or a combination thereof. Each of the virtual world servers 18-1 through 18-N hosts a cell, or virtual space, of the virtual world. Clients 20-1 through 20-M communicate with the virtual world servers 18-1 through 18-N in order to render the virtual world to associated users and to enable those users to control their avatars to interact with the virtual world. In this example, clients 20-1 and 20-2 are associated with avatars currently within the virtual space hosted by the virtual world server 18-1. As such, the clients 20-1 and 20-2 are communicatively coupled to the virtual world server 18-1.

Likewise, the client 20-M is associated with an avatar currently within the virtual space hosted by the virtual world server 18-N. As such, the client 20-M is communicatively coupled to the virtual world server 18-N.

The clients 20-1 through 20-M may be implemented in software and/or hardware and communicate with the virtual world servers 18-1 through 18-N to enable associated users to move their avatars throughout the virtual world and to interact with the virtual world. The clients 20-1 through 20-M may be implemented in user devices such as, for example, personal computers, gaming consoles, mobile gaming devices, mobile terminals, or the like. In one embodiment, if the nodes 12-1 through 12-N are user devices and the virtual world servers 18-1 through 18-N interact to provide a distributed P2P virtual world, at least some of the clients 20-1 through 20-M may be implemented on the nodes 12-1 through 12-N. The client devices 20-1 through 20-M may communicate with the nodes 12-1 through 12-N and more specifically the virtual world servers 18-1 through 18-N via the network 16 or via some separate network.

For more details of an exemplary distributed virtual world wherein each server hosts a virtual space of the virtual world, the interested reader is directed to U.S. patent application Ser. No. 11/693,152, entitled MESSAGE PROPAGATION IN A DISTRIBUTED VIRTUAL WORLD, which was filed March 29, 2007 and is hereby incorporated by reference in its entirety.

The virtual world authority 14 operates to validate virtual objects within the virtual world. Validation of the virtual objects may be desired, for example, to prevent cheating in the virtual world by gaining access to or otherwise interacting with virtual objects that one has not legitimately obtained. More specifically, as discussed below, the virtual world authority 14 operates to issue licenses enabling users or their avatars to access or interact with virtual objects, validate licenses, and revoke licenses when appropriate. Note that while the virtual world authority 14 is illustrated as a single block, the virtual world authority 14 may be implemented on a single network device such as a server or implemented on a number of network devices in a distributed fashion.

FIG. 2 illustrates the operation of the system 10 of FIG. 1. First, when the avatar associated with the client 20-1 enters the virtual space hosted by the virtual world server 18-1, the client 20-1 establishes communication with the virtual world server 18-1 (step 100). In one embodiment, prior to permitting the avatar to access or interact with virtual objects, the virtual world server 18-1 validates the virtual objects or licenses issued to the user represented by the avatar for those virtual objects (step 102). More specifically, in one embodiment, the avatar or may carry with it or otherwise be associated with a number of virtual objects such as, for example, clothing, weapons, maps, or the like. Before permitting the avatar to access or interact with those virtual objects, the virtual world server 18-1 validates the virtual objects or licenses issued to the avatar or the user associated with the avatar for those virtual objects in order to ensure that the virtual objects have been legitimately obtained and are legitimately retained by the avatar or user. In another embodiment, the virtual world server 18-1 may validate the virtual objects when the avatar enters the virtual space hosted by the virtual world server 18-1 or just prior to the time that the avatar enters the virtual space hosted by the virtual world server 18-1.

In one embodiment, the virtual world server 18-1 validates the virtual objects by requesting licenses for the virtual objects from the virtual world authority 14. The licenses include information defining the access rights of the avatar or user with respect to the virtual objects. In another embodiment, the avatar or user already has licenses for the virtual objects. The licenses may be stored by the client 20-1, provided to the virtual world server 18-1 when the avatar enters its virtual space, or the like. As such, the virtual world server 18-1 validates the virtual objects by validating the avatar's or user's licenses for the virtual objects.

The virtual world server 18-1 may validate the licenses for the virtual objects in any manner known in the art. For example, the licenses may be digitally signed by the virtual world authority 14. The virtual world server 18-1 may then validate the licenses using the digital signature. More specifically, as will be understood by one of ordinary skill in the art upon reading this disclosure, a license includes, for example, information defining the access rights of the avatar or user, information identifying the issuer of the license which in this case is the virtual world authority 14, and the like. When issuing a license, the virtual world authority 14 may process the contents of the license using a hashing process to generate a message digest. The message digest is then encrypted using a private key of the virtual world authority 14 to provide the digital signature of the virtual world authority 14 for the license. The digital signature is then appended to the license. Thereafter, the virtual world server 18-1 may validate the license by decrypting the digital signature using a public key of the virtual world authority 14 to obtain the message digest. If the decryption process was successful, the virtual world server 18-1 knows that the digital signature is that of the virtual world authority 18-1. The virtual world server 18-1 also processes the contents of the license to generate its own message digest for the license. If the message digest resulting from the digital signature and the message digest generated by the virtual world server 18-1 match, then the license is validated. In addition, the virtual world server 18-1 may interact with the virtual world authority 14 to further validate the license by, for example, querying the virtual world authority 14 to determine whether the license is still valid and has not been revoked. Still further, as will be apparent to one of ordinary skill in the art, additional measures may be taken for validation such as, for example, using a digital certificate to validate the public key of the virtual world authority 14.

In this example, at some point after the virtual objects have been validated individually, the virtual world server 18-1 categorizes the virtual objects into one or more groups of virtual objects (step 104). Alternatively, the virtual world server 18-1 may validate the virtual objects individually after creating the groups. The virtual world server 18-1 may group the virtual objects in any desired manner. For example, the virtual world server 18-1 may group the virtual objects based on the time of last interaction or amount of time since the virtual objects were last interacted with or accessed, frequency of interaction, object location, user rights and/or security, related content category, and/or object affinity. These types of groupings are generally predictive in nature.

More specifically, grouping based on the time of last interaction enables virtual objects that are more likely to be interacted with or accessed in the near future to be grouped together. For example, virtual objects last interacted with or accessed within the past 24 hours may be grouped together to form a first group, virtual objects last interacted with or accessed more than 24 hours ago but less than 5 days ago may be grouped together to form a second group, and so on. Note that if grouping of this type is desired, for each virtual object, information defining the last time the virtual object was accessed or interacted with is stored either at the client 20-1 or the node 12-1 hosting the virtual world server 18-1.

Grouping based on frequency of interaction enables virtual objects that are interacted with or accessed most frequently to be grouped together. As such, as discussed below, one validation process is used to validate the entire group. Each virtual object does not need to be validated individually, thereby substantially reducing the load placed on the system 10 with respect to validation of virtual objects. As an example, virtual objects interacted with or accessed over 100 times may be grouped together to form a first group, virtual objects interacted with or accessed less than 100 times but more than 50 times may be grouped together to form a second group, virtual objects interacted with or accessed less than 50 times but more than 25 times may be grouped together to form a third group, and so on.

Grouping based on location in the virtual world allows virtual objects that are often related or accessed or interacted with at or near the same time to be grouped together. Further, grouping based on location enables the virtual world server 18-1 to validate the group when the avatar is within or near the same location within the virtual world. Note that the location of a virtual object may be at a specific location within the virtual world or within another virtual object within the virtual world. For example, a house is a virtual object that may contain additional virtual objects such as furniture or the like. Thus, for example, all virtual objects within a defined area of the virtual world, or more specifically within a defined area of the virtual space hosted by the virtual world server 18-1, may be grouped together. As another example, the virtual space hosted by the virtual world server 18-1 may be divided into a number of static or dynamic areas, where virtual objects within those areas are grouped together. As another example, all virtual objects within a certain virtual object may be grouped together.

With respect to grouping based on user rights and/or security, virtual object licenses reflect the rights of various users or avatars to interact with, access, and/or possess the virtual object. Additionally, the owner of a virtual object, or user owning or having the right to possess a virtual object, may be able to assign similar rights. For example, an owner may give his friends access to use the virtual object. Grouping based on user rights and/or security can prevent validation operations for virtual objects that a user or users cannot interact with, access, or possess. Also, these types of groups can also provide quick validation for virtual objects shared by a group of users performing a group activity within the virtual world. For example, all virtual objects belonging to a certain user or avatar may be grouped together, all objects belonging to a certain group of users or avatars may be grouped together, all virtual objects accessible to a certain user or avatar may be grouped together, all virtual objects accessible by a certain group of users or avatars may be grouped together, all virtual objects with which a certain user may interact may be grouped together, all virtual objects with which a certain group of users may interact may be grouped together, or the like. Similarly, all virtual objects not belonging to a certain user or avatar may be grouped together, all objects not belonging to a certain group of users or avatars may be grouped together, all virtual objects not accessible to a certain user or avatar may be grouped together, all virtual objects not accessible by a certain group of users or avatars may be grouped together, all virtual objects with which a certain user may not interact may be grouped together, all virtual objects with which a certain group of users may not interact may be grouped together, or the like.

With respect to grouping based on related content categories, the system 10 may maintain an ontology, taxonomy, or the like that describes virtual objects or types of virtual objects and their relationships with other virtual objects or other types of virtual objects. This information may be stored by the virtual world authority 14, stored by each of the nodes 12-1 through 12-N, distributed among the nodes 12-1 through 12-N, stored by one or more other network nodes associated with the system 10, or the like. Based on this information describing relationships between virtual objects or types of virtual objects, the virtual world server 18-1 may categorize the virtual objects into groups of related virtual objects. For example, all clothing virtual objects may be grouped together, all weapons may be grouped together, and the like.

Once the one or more groups are formed, the virtual world server 18-1 generates a group license for each of the groups (step 106). Preferably, the group licenses are temporary. However, the present invention is not limited thereto. More specifically, each of the group licenses is similar to the licenses issued by the virtual world authority 14 but is for the associated group of virtual objects and the issuer of the group license is the virtual world server 18-1 rather than the virtual world authority 14. In addition, the group licenses are preferably digitally signed by the virtual world server 18-1 using the private key of the virtual world server 18-1. Note that while the digital signature is discussed herein, other techniques may be used to authenticate the source of the group licenses and to validate the contents of the group licenses.

It should be noted that in an alternative embodiment, the one or more groups may be formed by the virtual world authority 14 based on, for example, validation requests from the virtual world server 18-1. For example, if the virtual world authority 14 receives requests to validate multiple virtual objects associated with an avatar, the virtual world authority 14 may group the virtual objects or instruct the virtual world server 18-1 to group the virtual objects. In addition, whether or not the one or more groups are formed by the virtual world authority 14 or the virtual world server 18-1, the one or more group licenses may alternatively be generated by the virtual world authority 14 rather than the virtual world server 18-1. The group licenses may be temporary or permanent. More specifically, if the virtual world server 18-1 forms the one or more groups, the virtual world server 18-1 may then request a group license for each of the one or more groups from the virtual world authority 14.

Thereafter, in this example, the avatar associated with the client 20-1 moves from the virtual space hosted by the virtual world server 18-1 to the virtual space hosted by the virtual world server 18-2. As such, the client 20-1 establishes communication with the virtual world server 18-2 (step 108). In this example, at some point after the avatar has moved to the virtual space hosted by the virtual world server 18-2, the virtual world server 18-1 provides the one or more temporary group licenses associated with the avatar to the virtual world server 18-2 (step 110). Alternatively, the group licenses may be stored by the client 20-1, and the client 20-1 may provide the group licenses to the virtual world server 18-2. As another alternative, the virtual world server 18-1 or the client 20-1 may provide the group licenses to the virtual world server 18-2 in a predictive fashion. More specifically, based on the location and possible previous activities of the avatar, the virtual world server 18-1 or the client 20-1 may predict that the avatar will soon enter the virtual space hosted by the virtual world server 18-2. As such, the virtual world server 18-1 or the client 20-1 may provide the group licenses associated with the avatar to the virtual world server 18-2 in advance. The virtual world server 18-2 may then validate the groups in the manner described below prior to or at some point after the avatar enters its virtual space.

As yet another alternative, the virtual world server 18-2 may request the group licenses from the virtual world server 18-1 or the client 20-1 when desired.

After receiving the one or more group licenses, the virtual world server 18-2 validates the one or more groups of virtual objects based on their associated group licenses (step 112). As such, for each group, the group of virtual objects is validated using a single validation operation. Each virtual object in the group does not need to be validated individually, thereby reducing the load on the system 10 with respect to validation of virtual objects. Note that group licenses may include an explicit time-out period or similar information defining when the group licenses are to expire.

In one embodiment, in order to validate a group of virtual objects, the virtual world server 18-2 first decrypts a digital signature appended to the group license to obtain a message digest for the group license using a public key of the issuer of the group license, which in this example is the virtual world server 18-1. Successful decryption validates that the group license is from the virtual world server 18-1. Note that the public key may be obtained from the virtual world server 18-1. Alternatively, the public key may be provided by or authenticated by a trusted authority such as, for example, the virtual world authority 14 or a certificate issued by the trusted authority. The virtual world server 18-2 also generates its own message digest from the contents of the group license and compares this message digest to the message digest resulting from the decryption of the digital signature. If the two message digests match, the contents of the group license are validated. If the group license includes an explicit time-out period, then the virtual world server 18-2 determines whether the group license has expired. If so, the virtual world server 18-2 then proceeds to validate each virtual object in the group individually in the manner described above with respect to step 102. If the group license has not expired, the virtual world server 18-2 may interact with the virtual world server 18-1 to ensure that the group license has not been revoked and is still valid and may further interact with the virtual world authority 14 to ensure that the virtual world server 18-1 is a valid issuer of the group license. At this point, the group license is validated.

Once the group license is validated, the avatar or user associated with the avatar is enabled to access or interact with the virtual objects in the group as permitted by the group license.

In order to illustrate the principals of the invention, the following exemplary scenario is provided. However, this example is not intended to limit the scope of the present invention. First, an avatar acquires a number of virtual objects such as, for example, clothes, jewelry, weapons, and the like. The avatar may acquire the virtual objects by, for example, completing specified tasks within the virtual world or as a result of an e-commerce transaction wherein the associated user purchases the virtual objects. The virtual world authority 14 issues licenses for the virtual objects giving the avatar the right and permission to possess, access, interact with or otherwise use the virtual objects as applicable. The virtual objects and the licenses may be stored by the associated client, which in this example is the client 20-1. At some point thereafter, the avatar enters the virtual space hosted by the virtual world server 18-1. Assuming that the licenses of the virtual objects need to be validated, the virtual world server 18-1 validates the licenses for the virtual objects individually. Either before or after validating the licenses, the virtual world server 18-1 categorizes the virtual objects associated with the avatar into one or more groups. Once the virtual objects are validated individually, the virtual world server 18-1 issues a group license for each of the groups of virtual objects. Thereafter, when the avatar moves to the virtual space hosted by the virtual world server 18-2, the group licenses are provided to the virtual world server 18-2 either from the virtual world server 18-1 or the client 20-1. At some point such as, for example, an initial attempt of the avatar to access or interact with a virtual object in one of the groups, the virtual world server 18-2 validates the group license for the associated group. As a result, each virtual object in the group is validated, and the avatar is free to access or interact with all of the virtual objects in the group as permitted by the group license.

FIG. 3 is a block diagram of the node 12-1 of FIG. 1 according to one embodiment of the present invention. This discussion is equally applicable to the other nodes 12-2 through 12-N. In general, the node 12-1 includes a control system 22 having associated memory 24. In this example, the virtual world server 18-1 is implemented in software and stored in the memory 24. However, the present invention is not limited thereto. The virtual world server 18-1 may be implemented in software, hardware, or a combination thereof. The node 12-1 also includes one or more communication interfaces 26 communicatively coupling the node 12-1 to the network 16 and the clients 20-1 and 20-2 (FIG. 1). Note that the node 12-1 may communicate with the other nodes 12-2 through 12-N, the virtual world authority 14, and the clients 20-1 and 20-2 via a single communication interface or via separate communication interfaces. The node 12-1 also includes a user interface 28, which may include, for example, one or more user input devices, a display, speakers, and the like.

The present invention provides substantial opportunity for variation without departing from the spirit or scope of the present invention. For example, while the present invention has been discussed above with respect to a distributed virtual world, the present invention is applicable to any distributed architecture including a number of distributed network nodes wherein it is desirable to validate the same virtual object at different network nodes over time. In addition, while much of the discussion above focuses on validating virtual objects associated with an avatar, the present invention is not limited thereto.

For example, the present invention may be used to validate any virtual objects that may be accessed or interacted with from the virtual spaces of multiple virtual world servers in a distributed virtual world architecture.

Those skilled in the art will recognize improvements and modifications to the preferred embodiments of the present invention. All such improvements and modifications are considered within the scope of the concepts disclosed herein and the claims that follow. 

What is claimed is:
 1. A method of managing avatar access rights to a group of virtual objects in a distributed virtual world comprising: predicting on a first network node an avatar will move from a first virtual space to a second virtual space; and sending from the first network node to a second network node the avatar access rights wherein the second network node hosts the second virtual space.
 2. The method of claim 1 wherein the first network node hosts the first virtual space.
 3. The method of claim 1 wherein the first network node is a virtual world authority.
 4. The method of claim 3 wherein the virtual world authority granted the access rights. 